The assembly of industrial components and goods has become a very complex challenge over the last years. Industrial manufacturing processes typically comprise multiple steps, which are not necessarily executed serially. Many modern manufacturing processes take place in parallel and in particular the respective steps may be distributed over large geographical distances.
Every single process step has to be clearly defined by itself and with respect to the other steps, i.e., preceding and succeeding steps. Otherwise the risk of producing rejects increases, which could be in security-relevant in the worst case.
The production of cars serves as an example for illustrating such problems. The assembly comprises many single process steps, among others manufacturing the car body, the chassis and the engine. Each component consists of many parts and thus requires a number of manufacturing steps itself. While many steps can only occur in serial, others may occur in a parallel to each other. For example, the car body and the engine may be manufactured in parallel to each other, while e.g., the engine itself will be manufactured in a more serialized manner. Moreover, the process of manufacturing single parts is typically outsourced to sub-contractors. In order to avoid delays through missing parts, an optimized supply chain is necessary. This example clarifies the complex structure of processes such as manufacturing goods.
Further, oftentimes changes of a process are necessary, e.g., due to technological progress. However, there may also be changes of processes required on a shorter time scale, i.e., if any kind of problem occurs. The latter changes relate to changes of the process that were typically not foreseen when the process was initially planned, so that the process has to be changed in an ad-hoc manner. For example, due to unforeseen technical problems, it may be necessary to change not only certain steps itself but also the sequence of several steps. Preferably, this should happen without having to stop the assembly line.
Typically, the monitoring and controlling of such processes is done by means of IT-infrastructure in order to satisfy the need for flexibility and reliability. The above-mentioned example already hints that such an IT-infrastructure must be very complex and powerful. To this end, such systems usually are customized to fit a certain manufacturer's needs. Therefore, such systems cannot be easily modified or even exchanged once they are deployed, i.e. installed in the productive environment. Such processes are typically controlled by so-called Workflow Management Systems (WFMS).
In the prior art, several approaches are known for managing WFMS. For example, “ADEPT—Realisierung flexibler und zuverlässiger unternehmensweiter Workflow-Anwendungen” by Reichert, et al. mentions the requirement for ad-hoc modifications of processes. It discusses the need for consistency of such modifications, including adding, moving or deleting of single activities with respect to the ADEPT WFMS.
Further, “GroupProcess: Partizipatives, verteiltes Design und simultane Ausführung von Ad hoc Geschäftsprozessen” by Huth, et al. relates to ad-hoc modifications in order to cope with necessary, but unanticipated changes. This document merely states the problem besides other challenges to different kinds of workflows.
It is therefore the technical problem underlying the present technology to provide a system and a method that allows for quick and flexible adjustments of processes in a consistent manner, thereby overcoming the above mentioned problems at least in part.
This problem is according to one aspect of the technology solved by a system for ad-hoc modification of a process running in a workflow management system (WFMS). In the embodiment of claim 1, the process is defined by a process definition and the system comprises an ad-hoc modification component adapted for extracting the process definition from the running process, modifying the process definition, and redeploying the modified process definition, so that the process runs on the modified process definition, wherein the redeployment is performed without interrupting the running process.
According to this aspect of the present technology, a running process can be modified without the need for stopping the process. This is achieved by extracting the definition of the running process, which preferably comprises the sequence of all process steps and/or the respective activities to be carried out by each process step. The subsequent modification therefore does not occur on the running process itself, but on the extracted process definition. This allows for modifying the process definition during runtime without disrupting the execution of the running process. Further, the process can be modified in a manner that was not foreseen, i.e., planned, when the process was initially designed (“ad-hoc” modification). Therefore, any kind of e.g., assembly can continue while the modification takes place. The redeployment of the modified process definition happens preferably in one single step and thus also without interruptions. It will be appreciated that “without interruptions” is to be interpreted in that the redeployment may take a very short time span, e.g., milliseconds to seconds, however, a user will perceive the process modification and/or redeployment as happening in real-time. The reason is that parts of the running process can be modified without touching the original process which—if changed—would have to be retransformed into a technical, executable description (which usually requires additional manual work of a technician) of the process. Thus, it is possible to modify processes efficiently in real-time, i.e., within milliseconds to seconds without the need to retransform the original process. Without the technology, redesign, retransformation and redeployment of a process definition would have to be conducted manually and with involvement of a technician, thus taking at least several hours up to several days.
In a further aspect of the present technology, the ad-hoc modification component is separated from a process execution means adapted for running the process. Accordingly, separating these two components allows for a customization of the system to different process execution means. For example, the ad-hoc modification component may be provided once and subsequently be used by a plurality of different underlying process execution means.
In another aspect, the ad-hoc modification component communicates with the process execution means through an ad-hoc modification adapter. Accordingly, the ad-hoc modification adapter serves for translating between the ad-hoc modification component and the respective process execution means. Inserting an ad-hoc modification adapter can further simplify the communication between the process execution means and the ad-hoc modification component. As an example, only the adapter has to be configured to communicate with the different process execution means, while the ad-hoc modification component can remain unchanged. This reduces the amount of work for many kinds of changes, since only a smaller module has to be adapted.
In a further aspect, the ad-hoc modification adapter and the underlying process execution means communicate via a pre-defined interface. Since many different systems for managing processes are available, it is desirable to communicate with these systems in a standardized manner. This simplifies the complexity for adapting the ad-hoc modification module to a certain process execution means. Further, using a certain standard provides for improved interoperability with existing and also new products. In particular, a company relying on a certain product for managing processes could simply incorporate the ad-hoc modification component of the present technology without the need for adaptations to their own product, which usually poses huge technical problems. For example, a car manufacturer may have a large system for processing the manufacturing of a car, which may even be connected with one or more suppliers. Upgrading an existing system seems to be unrealistic. However, the advantageous approach of the present technology allows for a simple use of the ad-hoc modification component via a standard interface, thus not relying on a certain vendor.
Preferably, the extraction and the redeployment of the process are preformed by the ad-hoc modification adapter. It may be necessary to build an ad-hoc modification adapter as an extension which could then be integrated into the existing system. This adapter could take care of correctly migrating a certain running process instance to the modified process definition. This might be necessary, e.g., when the state of a process instance is not fully accessible from outside the system.
In yet another aspect, the process definition comprises at least two nodes representing process steps and at least one edge between the at least two nodes representing a transition between the process steps. As mentioned further above, a typical process comprises a number of process steps which are connected with one or more other process steps of the same process. By encapsulating the process definition, i.e., certain activities and the transitions between one or more of such activities, within nodes and edges it is possible to easily represent the process, e.g., in a graphical manner. This allows for a standardized modification of a certain process through an abstract representation.
The modification may comprise adding and/or removing at least one node and/or at least one edge. It is a particular feature of the present technology to allow not only for the modification of a certain activity comprised within a single node, but also to allow for modifying the whole process, i.e., to add or move or remove at least one node and/or edge. As an example, technological advance may allow for an improved manufacturing process. In this case it might be desirable to adjust the process in order to simplify and accelerate the manufacturing of a product, i.e., a car. It may also be required to remove certain steps because they become obsolete or to introduce a new activity to the process. The advantageous approach of the present technology allows for such a modification without stopping a running process instance and without the need for retransforming a defined process into a certain representation, e.g., a computer program product.
Additionally or alternatively, the modification may comprise reordering single steps of the process definition with or without modifying the process steps. It may also be desirable to simply reorder an existing process, i.e., the production of components or the subsequent manufacturing of these components on an assembly line.
In a further aspect, the modification of the process is instantaneously evaluated. An important feature is the possibility to evaluate any changes with respect to validity, governance rules, information flow integrity, etc. On the one hand, validity and information flow integrity can be achieved e.g., by inspecting information flow between process steps, thus ensuring that a process step cannot be moved to a position in the execution sequence where there is not enough information to execute it yet. On the other hand, governance rules can become effective by defining in advance e.g., during process design, which users may insert or delete which nodes and edges, thus further restricting possible modifications. In this way, problems occurring through erroneous modifications can be avoided. As an example, the change of quality requirements for security-relevant components could be restricted, such that they can only become stricter.
In another aspect, the modification comprises automatically migrating a running process from the former process definition to the modified process definition. By representing a complex process in an abstract and standardized manner, i.e., through nodes comprising activities and edges representing transitions between them an arbitrarily complex process can be mapped onto a modified version of the process. This important feature holds especially true if the ad-hoc modification component is separated from the processing system itself and is independent of this underlying processing system.
The present technology also concerns a method for ad-hoc modification of a process using any of the above systems. Further, a computer program is provided comprising instructions for implementing the above method.